--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sbapp/md2bbcode/main.py 0a28ec76f3ea7549bd103e1fa09b69267541dbb7 (0a28ec76) Text, 2.80 KB
T8b949e# uses a custom mistune renderer to convert Markdown to BBCode. The custom renderer is defined in the bbcode.py file.
T8b949e# pass --debug to save the output to readme.1stpass (main.py) and readme.finalpass (html2bbcode)
T8b949e# for further debugging, you can convert the markdown file to AST using md2ast.py. Remember to load the plugin(s) you want to test.
T8b949e#standard library
Tff7b72import T7ee787argparse
Tff7b72import T7ee787sys
T8b949e# mistune
Tff7b72import T7ee787mistune
Tff7b72from T7ee787mistuneT7ee787.T7ee787pluginsT7ee787.T7ee787formatting Tff7b72import Te6edf3strikethroughTb4b4b4, Te6edf3markTb4b4b4, Te6edf3superscriptTb4b4b4, Te6edf3subscriptTb4b4b4, Te6edf3insert
Tff7b72from T7ee787mistuneT7ee787.T7ee787pluginsT7ee787.T7ee787table Tff7b72import Te6edf3tableTb4b4b4, Te6edf3table_in_list
Tff7b72from T7ee787mistuneT7ee787.T7ee787pluginsT7ee787.T7ee787footnotes Tff7b72import Te6edf3footnotes
Tff7b72from T7ee787mistuneT7ee787.T7ee787pluginsT7ee787.T7ee787task_lists Tff7b72import Te6edf3task_lists
Tff7b72from T7ee787mistuneT7ee787.T7ee787pluginsT7ee787.T7ee787def_list Tff7b72import Te6edf3def_list
Tff7b72from T7ee787mistuneT7ee787.T7ee787pluginsT7ee787.T7ee787abbr Tff7b72import Te6edf3abbr
Tff7b72from T7ee787mistuneT7ee787.T7ee787pluginsT7ee787.T7ee787spoiler Tff7b72import Te6edf3spoiler
T8b949e# local
Tff7b72from T7ee787md2bbcodeT7ee787.T7ee787pluginsT7ee787.T7ee787merge_lists Tff7b72import Te6edf3merge_ordered_lists
Tff7b72from T7ee787md2bbcodeT7ee787.T7ee787renderersT7ee787.T7ee787bbcode Tff7b72import Te6edf3BBCodeRenderer
Tff7b72from T7ee787md2bbcodeT7ee787.T7ee787html2bbcode Tff7b72import Te6edf3process_html
Tff7b72def Td2a8ffconvert_markdown_to_bbcodeTb4b4b4(Te6edf3markdown_textTb4b4b4, Te6edf3domainTb4b4b4)Tb4b4b4:
T8b949e# Create a Markdown parser instance using the custom BBCode renderer
Te6edf3markdown_parser Tff7b72= Te6edf3mistuneTff7b72.Td2a8ffcreate_markdownTb4b4b4(Te6edf3rendererTff7b72=Te6edf3BBCodeRendererTb4b4b4(Te6edf3domainTff7b72=Te6edf3domainTb4b4b4)Tb4b4b4, Te6edf3pluginsTff7b72=Tb4b4b4[Te6edf3strikethroughTb4b4b4, Te6edf3markTb4b4b4, Te6edf3superscriptTb4b4b4, Te6edf3subscriptTb4b4b4, Te6edf3insertTb4b4b4, Te6edf3tableTb4b4b4, Te6edf3footnotesTb4b4b4, Te6edf3task_listsTb4b4b4, Te6edf3def_listTb4b4b4, Te6edf3abbrTb4b4b4, Te6edf3spoilerTb4b4b4, Te6edf3table_in_listTb4b4b4, Te6edf3merge_ordered_listsTb4b4b4]Tb4b4b4)
T8b949e# Convert Markdown text to BBCode
Tff7b72return Te6edf3markdown_parserTb4b4b4(Te6edf3markdown_textTb4b4b4)
Tff7b72def Td2a8ffprocess_readmeTb4b4b4(Te6edf3markdown_textTb4b4b4, Te6edf3domainTff7b72=Tff7b72NoneTb4b4b4, Te6edf3debugTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
T8b949e# Convert Markdown to BBCode
Te6edf3bbcode_text Tff7b72= Te6edf3convert_markdown_to_bbcodeTb4b4b4(Te6edf3markdown_textTb4b4b4, Te6edf3domainTb4b4b4)
T8b949e# If debug mode, save intermediate BBCode
Tff7b72if Te6edf3debugTb4b4b4:
Tff7b72with Tffa657openTb4b4b4(Ta5d6ff'Ta5d6ffreadme.1stpassTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffwTa5d6ff'Tb4b4b4, Te6edf3encodingTff7b72=Ta5d6ff'Ta5d6ffutf-8Ta5d6ff'Tb4b4b4) Tff7b72as Te6edf3fileTb4b4b4:
Te6edf3fileTff7b72.Td2a8ffwriteTb4b4b4(Te6edf3bbcode_textTb4b4b4)
T8b949e# Convert BBCode formatted as HTML to final BBCode
Te6edf3final_bbcode Tff7b72= Te6edf3process_htmlTb4b4b4(Te6edf3bbcode_textTb4b4b4, Te6edf3debugTb4b4b4, Ta5d6ff'Ta5d6ffreadme.finalpassTa5d6ff'Tb4b4b4)
Tff7b72return Te6edf3final_bbcode
Tff7b72def Td2a8ffmainTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3parser Tff7b72= Te6edf3argparseTff7b72.Td2a8ffArgumentParserTb4b4b4(Te6edf3descriptionTff7b72=Ta5d6ff'Ta5d6ffConvert Markdown file to BBCode with HTML processing.Ta5d6ff'Tb4b4b4)
Te6edf3parserTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff'Ta5d6ffinputTa5d6ff'Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff'Ta5d6ffInput Markdown file pathTa5d6ff'Tb4b4b4)
Te6edf3parserTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff'Ta5d6ff--domainTa5d6ff'Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff'Ta5d6ffDomain to prepend to relative URLsTa5d6ff'Tb4b4b4)
Te6edf3parserTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff'Ta5d6ff--debugTa5d6ff'Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff'Ta5d6ffstore_trueTa5d6ff'Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff'Ta5d6ffOutput intermediate results to files for debuggingTa5d6ff'Tb4b4b4)
Te6edf3args Tff7b72= Te6edf3parserTff7b72.Td2a8ffparse_argsTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3argsTff7b72.Td2a8ffinput Tff7b72== Ta5d6ff'Ta5d6ff-Ta5d6ff'Tb4b4b4:
T8b949e# Read Markdown content from stdin
Te6edf3markdown_text Tff7b72= Te6edf3sysTff7b72.Td2a8ffstdinTff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72with Tffa657openTb4b4b4(Te6edf3argsTff7b72.Td2a8ffinputTb4b4b4, Ta5d6ff'Ta5d6ffrTa5d6ff'Tb4b4b4, Te6edf3encodingTff7b72=Ta5d6ff'Ta5d6ffutf-8Ta5d6ff'Tb4b4b4) Tff7b72as Te6edf3md_fileTb4b4b4:
Te6edf3markdown_text Tff7b72= Te6edf3md_fileTff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)
T8b949e# Process the readme and get the final BBCode
Te6edf3final_bbcode Tff7b72= Te6edf3process_readmeTb4b4b4(Te6edf3markdown_textTb4b4b4, Te6edf3argsTff7b72.Td2a8ffdomainTb4b4b4, Te6edf3argsTff7b72.Td2a8ffdebugTb4b4b4)
T8b949e# Optionally, print final BBCode to console
Tff7b72if Tff7b72not Te6edf3argsTff7b72.Td2a8ffdebugTb4b4b4:
Tffa657printTb4b4b4(Te6edf3final_bbcodeTb4b4b4)
Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff'Ta5d6ff__main__Ta5d6ff'Tb4b4b4:
Te6edf3mainTb4b4b4(Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────